package com.upcode.weighing.service;

import com.upcode.weighing.domain.SysRes;
import com.baomidou.mybatisplus.extension.service.IService;
import com.upcode.weighing.vo.add.SysResAddVo;
import com.upcode.weighing.vo.del.BaseDelVo;
import com.upcode.weighing.vo.edit.ButtonEditVo;
import com.upcode.weighing.vo.edit.SysResEditVo;
import com.upcode.weighing.vo.req.PageReqVo;
import com.upcode.weighing.vo.resp.PageRespVo;
import com.upcode.weighing.vo.resp.pc.ButtonVo;
import com.upcode.weighing.vo.resp.pc.MenuTreeVo;
import com.upcode.weighing.vo.resp.pc.SysResVo;

import java.util.List;

/**
 * <p>
 * 资源表 服务类
 * </p>
 *
 * @author alex
 * @since 2019-04-10
 */
public interface SysResService extends IService<SysRes> {
    //菜单管理分页列表
    PageRespVo<SysResVo> selectPageList(PageReqVo<SysResVo> vo);
    //查询菜单是否存在
    int checkRes(String permission);
    //添加菜单
    int addRes(SysResAddVo vo);
    //获取所有菜单
    List<SysRes> getRes();
    //修改菜单
    int editRes(SysResEditVo vo);
    //删除菜单
    int delRes(BaseDelVo vo);
    //获取一级菜单列表
    List<SysResVo> getParentResList();
    //根据一级菜单获取二级菜单
    List<SysResVo> getChildList(Long pId);
    //添加按钮
    int addButton(SysResAddVo vo);
    //获取按钮信息
    ButtonVo getButton(Long id);
    //修改按钮
    int updateButton(ButtonEditVo vo);
    //删除按钮
    int delButton(BaseDelVo vo);
    //获取左侧菜单
    List<SysRes> getLeftRes();
    //检查标识是否重复
    int checkVueKey(String vueKey);
    //二级菜单下不允许再添加菜单
    Long checkChild(Long id);
    //获取要修改的菜单信息
    SysRes getEditRes(Long id);
    /**
     * 根据用户id查询权限下的资源树
     * @param userId
     * @return
     */
    List<MenuTreeVo> menuTreeByUserId(Long userId);
}
